Indexovani tabulky
Otázka od: Zdenek
7. 10. 2002 16:58
Mel bych nekolik dotazu ohledne indexovani tabulek:
1. Nejde mi vytvorit index pomoci Table.Addindex.
Mam jednoduchou tabulku jmeno:string, cislo:numeric, na stisknuti tlacitka
nejprve smazu vsechny existujici indexy a potom chci vytvorit nove. Ale ne
pridani indexu vyskoci vyjimka a je jedno jestli je tabulka otevrena exklusivne
nebo ne.
Jak mam pridat index?
Tady prikladam kod:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
Table1.Active := False;
try
Table1.Close;
Table1.Exclusive := True;
Table1.Open;
Table1.IndexDefs.Update;
for i := Table1.IndexDefs.Count - 1 downto 0 do
Table1.DeleteIndex(Table1.IndexDefs.Items[i].Name);
Table1.AddIndex(\'JmCislo\',\'Jmeno;Cislo\',[]);
Table1.AddIndex(\'CisloJm\',\'Cislo;Jmeno\',[]);
Table1.AddIndex(\'\',\'Jmeno\',[ixPrimary, ixUnique]);
Table1.Close;
Table1.Exclusive := False;
Table1.Open;
except
on EDatabaseError do begin
ShowMessage(\'Could not open Table1 exclusively\');
Table1.Close;
Table1.Exclusive := False;
Table1.Open;
end;
end;
end;
2. Jak poznam primarni index v paradoxove tabulce? V napovede pisou, ze se
primarni index neda smazat, ale mne se to dari (normalne pres DeleteIndex).
3. Lze nejak krokovat program z prostredi Delphi, kdyz je tabulka exklusivne
otevrena? Pri behu z prostredi to hazi vyjimky, ale pokud se program nepusti z
Delphi normalne bezi.